(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Sun Microsystems Inc.) Main-Class: Nats/DivMinus
package Nats;

public class DivMinus {

public static Nats minus(final Nats x, final Nats y) {
if (y.isZero()) {
return x.copy();
}
if (x.isZero()) {
return Nats.zero();
}
return minus(x.pred, y.pred);
}

public static Nats div(final Nats x, final Nats y) {
if (y.isZero()) {
return Nats.zero();
}
if (x.isZero()) {
return Nats.zero();
}
return Nats.succ(div(minus(x.pred, y.pred), y));
}

public static void main(final String[] args) {

final Nats x = new Nats(args[0].length());
final Nats y = new Nats(args[1].length());

final Nats z = div(x, y);

// System.out.println(x + " / " + y + " = " + z);

}
}


package Nats;

public class Nats {
Nats pred;

public Nats() {
}

public Nats(final int n) {
if (n <= 0) {
this.pred = null;
} else {
this.pred = new Nats(n - 1);
}
}

public int toInt() {
if (this.pred == null) {
return 0;
}
return this.pred.toInt() + 1;
}

@Override
public String toString() {
return (String.valueOf(toInt()));
}

public boolean isZero() {
return (this.pred == null);
}

public static Nats zero() {
return new Nats();
}

public static Nats succ(final Nats x) {
final Nats y = new Nats();
y.pred = x;
return y;
}

/**
* @return
*/
public Nats copy() {
if (this.pred == null) {
return new Nats();
}
final Nats predCopy = this.pred.copy();
return succ(predCopy);
}

}


(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Nats.DivMinus.main([Ljava/lang/String;)V: Graph of 159 nodes with 0 SCCs.

Nats.Nats.<init>(I)V: Graph of 27 nodes with 0 SCCs.

Nats.DivMinus.div(LNats/Nats;LNats/Nats;)LNats/Nats;: Graph of 118 nodes with 0 SCCs.

Nats.Nats.isZero()Z: Graph of 13 nodes with 0 SCCs.

Nats.DivMinus.minus(LNats/Nats;LNats/Nats;)LNats/Nats;: Graph of 143 nodes with 0 SCCs.

Nats.Nats.copy()LNats/Nats;: Graph of 57 nodes with 0 SCCs.


(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Logs:


Log for SCC 0:

Generated 11 rules for P and 45 rules for R.


Combined rules. Obtained 1 rules for P and 3 rules for R.


Filtered ground terms:


1249_0_copy_FieldAccess(x1, x2, x3) → 1249_0_copy_FieldAccess(x2, x3)
Nats.Nats(x1, x2) → Nats.Nats(x2)
2638_0_copy_Return(x1, x2) → 2638_0_copy_Return(x2)
1817_0_copy_Return(x1, x2) → 1817_0_copy_Return
1415_0_copy_Return(x1, x2, x3) → 1415_0_copy_Return

Filtered duplicate args:


1249_0_copy_FieldAccess(x1, x2) → 1249_0_copy_FieldAccess(x2)

Finished conversion. Obtained 1 rules for P and 3 rules for R. System has no predefined symbols.




Log for SCC 1:

Generated 28 rules for P and 187 rules for R.


Combined rules. Obtained 4 rules for P and 15 rules for R.


Filtered ground terms:


Nats.Nats(x1, x2) → Nats.Nats(x2)
1237_0_isZero_Load(x1, x2) → 1237_0_isZero_Load(x2)
1008_0_isZero_Return(x1, x2) → 1008_0_isZero_Return
1186_0_isZero_Load(x1, x2) → 1186_0_isZero_Load(x2)
1031_0_isZero_Return(x1, x2) → 1031_0_isZero_Return
927_0_isZero_NONNULL(x1, x2) → 927_0_isZero_NONNULL(x2)
1953_0_minus_Return(x1, x2) → 1953_0_minus_Return(x2)
2376_0_minus_Return(x1, x2, x3, x4) → 2376_0_minus_Return(x2, x3, x4)
1697_0_minus_InvokeMethod(x1, x2, x3, x4) → 1697_0_minus_InvokeMethod(x3, x4)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
java.lang.RuntimeException(x1) → java.lang.RuntimeException
java.lang.Exception(x1) → java.lang.Exception
java.lang.Throwable(x1) → java.lang.Throwable
1734_0_minus_InvokeMethod(x1, x2, x3, x4) → 1734_0_minus_InvokeMethod(x4)
1689_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1689_0_minus_InvokeMethod(x4)
1681_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1681_0_minus_InvokeMethod(x4)
1585_0_minus_InvokeMethod(x1, x2, x3, x4) → 1585_0_minus_InvokeMethod(x3)
1494_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1494_0_minus_InvokeMethod(x3)
1481_0_minus_Return(x1, x2) → 1481_0_minus_Return
1470_0_minus_Return(x1, x2, x3, x4) → 1470_0_minus_Return(x3)
1419_0_minus_Return(x1, x2, x3, x4) → 1419_0_minus_Return(x2, x3)

Filtered duplicate args:


1237_1_minus_InvokeMethod(x1, x2, x3, x4) → 1237_1_minus_InvokeMethod(x1, x3, x4)
1186_1_minus_InvokeMethod(x1, x2, x3, x4) → 1186_1_minus_InvokeMethod(x1, x2, x4)

Finished conversion. Obtained 2 rules for P and 15 rules for R. System has no predefined symbols.




Log for SCC 2:

Generated 42 rules for P and 303 rules for R.


Combined rules. Obtained 9 rules for P and 49 rules for R.


Filtered ground terms:


Nats.Nats(x1, x2) → Nats.Nats(x2)
1617_0_isZero_Load(x1, x2) → 1617_0_isZero_Load(x2)
1953_0_minus_Return(x1, x2) → 1953_0_minus_Return(x2)
1481_0_minus_Return(x1, x2) → 1481_0_minus_Return
2376_0_minus_Return(x1, x2, x3, x4) → 2376_0_minus_Return(x2, x3, x4)
1470_0_minus_Return(x1, x2, x3, x4) → 1470_0_minus_Return(x3)
1419_0_minus_Return(x1, x2, x3, x4) → 1419_0_minus_Return(x2, x3)
1856_0_minus_Load(x1, x2, x3) → 1856_0_minus_Load(x2, x3)
1008_0_isZero_Return(x1, x2) → 1008_0_isZero_Return
1761_0_isZero_Load(x1, x2) → 1761_0_isZero_Load(x2)
2638_0_copy_Return(x1, x2) → 2638_0_copy_Return(x2)
1817_0_copy_Return(x1, x2) → 1817_0_copy_Return
1415_0_copy_Return(x1, x2, x3) → 1415_0_copy_Return
1252_0_minus_EQ(x1, x2, x3, x4) → 1252_0_minus_EQ(x2, x3, x4)
1734_0_minus_InvokeMethod(x1, x2, x3, x4) → 1734_0_minus_InvokeMethod(x4)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
java.lang.RuntimeException(x1) → java.lang.RuntimeException
java.lang.Exception(x1) → java.lang.Exception
java.lang.Throwable(x1) → java.lang.Throwable
1689_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1689_0_minus_InvokeMethod(x4)
1697_0_minus_InvokeMethod(x1, x2, x3, x4) → 1697_0_minus_InvokeMethod(x3, x4)
1585_0_minus_InvokeMethod(x1, x2, x3, x4) → 1585_0_minus_InvokeMethod(x3)
1681_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1681_0_minus_InvokeMethod(x4)
1494_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1494_0_minus_InvokeMethod(x3)
1174_0_minus_InvokeMethod(x1, x2, x3, x4) → 1174_0_minus_InvokeMethod(x2, x3, x4)
1031_0_isZero_Return(x1, x2) → 1031_0_isZero_Return
1275_0_copy_NONNULL(x1, x2, x3) → 1275_0_copy_NONNULL(x2, x3)
1206_0_minus_EQ(x1, x2, x3, x4) → 1206_0_minus_EQ(x2, x3, x4)
927_0_isZero_NONNULL(x1, x2) → 927_0_isZero_NONNULL(x2)
2812_0_div_Return(x1, x2) → 2812_0_div_Return(x2)
2386_0_div_Return(x1, x2) → 2386_0_div_Return
2163_0_div_InvokeMethod(x1, x2, x3, x4) → 2163_0_div_InvokeMethod(x3, x4)
2034_0_div_Return(x1, x2, x3, x4) → 2034_0_div_Return(x2, x3)
1949_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1949_0_div_InvokeMethod(x3, x4, x5)
1937_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1937_0_div_InvokeMethod(x3, x5)
1818_0_div_Return(x1, x2, x3, x4) → 1818_0_div_Return(x2, x3)
1929_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1929_0_div_InvokeMethod(x4)

Filtered duplicate args:


1617_1_div_InvokeMethod(x1, x2, x3, x4) → 1617_1_div_InvokeMethod(x1, x2, x4)
1761_1_div_InvokeMethod(x1, x2, x3, x4) → 1761_1_div_InvokeMethod(x1, x3, x4)
1230_1_minus_InvokeMethod(x1, x2, x3, x4) → 1230_1_minus_InvokeMethod(x1, x3, x4)
1174_0_minus_InvokeMethod(x1, x2, x3) → 1174_0_minus_InvokeMethod(x1, x3)
1237_1_minus_InvokeMethod(x1, x2, x3, x4) → 1237_1_minus_InvokeMethod(x1, x3, x4)
1186_1_minus_InvokeMethod(x1, x2, x3, x4) → 1186_1_minus_InvokeMethod(x1, x2, x4)

Finished conversion. Obtained 7 rules for P and 49 rules for R. System has no predefined symbols.




Log for SCC 3:

Generated 15 rules for P and 12 rules for R.


Combined rules. Obtained 1 rules for P and 2 rules for R.


Filtered ground terms:


92_0_<init>_InvokeMethod(x1, x2) → 92_0_<init>_InvokeMethod(x2)
Cond_92_0_<init>_InvokeMethod(x1, x2, x3) → Cond_92_0_<init>_InvokeMethod(x1, x3)
370_0_<init>_Return(x1) → 370_0_<init>_Return
215_0_<init>_Return(x1) → 215_0_<init>_Return

Combined rules. Obtained 1 rules for P and 2 rules for R.


Finished conversion. Obtained 1 rules for P and 2 rules for R. System has predefined symbols.


(4) Complex Obligation (AND)

(5) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))

The integer pair graph contains the following rules and edges:
(0): 1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

(0) -> (0), if ((java.lang.Object(x0[0]) →* java.lang.Object(Nats.Nats(java.lang.Object(x0[0]')))))



The set Q consists of the following terms:
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

(6) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

The TRS R consists of the following rules:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))

The set Q consists of the following terms:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

We have to consider all minimal (P,Q,R)-chains.

(8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

R is empty.
The set Q consists of the following terms:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

We have to consider all minimal (P,Q,R)-chains.

(10) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The integer pair graph contains the following rules and edges:
(0): 1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
(1): 1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

(0) -> (1), if ((1237_0_isZero_Load(java.lang.Object(x2[0])) →* 1008_0_isZero_Return)∧(java.lang.Object(x1[0]) →* java.lang.Object(x1[1]))∧(java.lang.Object(x2[0]) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))))


(1) -> (0), if ((1237_0_isZero_Load(java.lang.Object(x1[1])) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))))



The set Q consists of the following terms:
1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

We have to consider all minimal (P,Q,R)-chains.

(17) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

We have to consider all minimal (P,Q,R)-chains.

(19) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

We have to consider all minimal (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))
    The graph contains the following edges 3 >= 2, 2 >= 3

  • 1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
    The graph contains the following edges 3 > 2, 2 > 3

(22) YES

(23) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), 0)
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), 1)
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 0) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 1) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), 0)
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), 1)
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The integer pair graph contains the following rules and edges:
(0): 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
(1): 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
(2): 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
(3): 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
(4): 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
(5): 1856_1_DIV_INVOKEMETHOD(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))
(6): 1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

(0) -> (1), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))) →* java.lang.Object(Nats.Nats(x2[1])))∧(java.lang.Object(Nats.Nats(x1[0])) →* java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))))


(1) -> (2), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(x0[2])))∧(x2[1]* java.lang.Object(Nats.Nats(x1[2]))))


(1) -> (3), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(NULL)))∧(x2[1]* java.lang.Object(Nats.Nats(x0[3]))))


(1) -> (4), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))))∧(x2[1]* java.lang.Object(Nats.Nats(x1[4]))))


(1) -> (5), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1481_0_minus_Return)∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))))∧(x2[1]* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))


(1) -> (6), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))))∧(x2[1]* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))


(2) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(3) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(4) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(5) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(6) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(x0[6])) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))



The set Q consists of the following terms:
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 0)
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0)
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 1)
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1)
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

(24) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(26) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(28) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(30) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))

(31) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(32) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1]) at position [0] we obtained the following new rules [LPAR04]:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

(33) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(34) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(35) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(36) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1856_0_minus_Load(x0, x1)

(37) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(38) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

(39) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(40) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0]))) at position [0] we obtained the following new rules [LPAR04]:

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))

(41) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(42) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

(43) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(44) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

(45) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(46) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

(47) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(48) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(50) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))

(51) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(52) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

(53) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(54) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

(55) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(56) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

(57) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(58) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

(59) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(60) Narrowing (EQUIVALENT transformation)

By narrowing [LPAR04] the rule 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0]))) at position [0] we obtained the following new rules [LPAR04]:

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1031_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(NULL)))

(61) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1031_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(NULL)))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(62) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes.

(63) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(64) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 0   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1206_0_minus_EQ(x1, x2, x3)) = 0   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1252_0_minus_EQ(x1, x2, x3)) = 0   
POL(1275_0_copy_NONNULL(x1, x2)) = 2 + 2·x1   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 1 + 2·x2   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = 2·x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = x1   
POL(1470_0_minus_Return(x1)) = x1   
POL(1481_0_minus_Return) = 1   
POL(1494_0_minus_InvokeMethod(x1)) = 0   
POL(1585_0_minus_InvokeMethod(x1)) = 0   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1681_0_minus_InvokeMethod(x1)) = x1   
POL(1689_0_minus_InvokeMethod(x1)) = x1   
POL(1697_0_minus_InvokeMethod(x1, x2)) = x1 + 2·x2   
POL(1734_0_minus_InvokeMethod(x1)) = 0   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = 0   
POL(2376_0_minus_Return(x1, x2, x3)) = 0   
POL(2638_0_copy_Return(x1)) = 1 + x1   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 2·x1   
POL(s(x1)) = 0   

(65) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(66) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 1   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 1 + x3   
POL(1206_0_minus_EQ(x1, x2, x3)) = 1   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 1 + 2·x2   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1252_0_minus_EQ(x1, x2, x3)) = 1   
POL(1275_0_copy_NONNULL(x1, x2)) = 0   
POL(1351_1_copy_InvokeMethod(x1, x2)) = x2   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = 1   
POL(1470_0_minus_Return(x1)) = 1 + x1   
POL(1494_0_minus_InvokeMethod(x1)) = 0   
POL(1585_0_minus_InvokeMethod(x1)) = 0   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 1 + x1   
POL(1681_0_minus_InvokeMethod(x1)) = 1   
POL(1689_0_minus_InvokeMethod(x1)) = 1   
POL(1697_0_minus_InvokeMethod(x1, x2)) = 2·x2   
POL(1734_0_minus_InvokeMethod(x1)) = 1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = 1   
POL(2376_0_minus_Return(x1, x2, x3)) = 1 + 2·x1 + 2·x2 + x3   
POL(2638_0_copy_Return(x1)) = 0   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 0   
POL(s(x1)) = 2   

(67) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(68) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 0   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = x3   
POL(1206_0_minus_EQ(x1, x2, x3)) = 0   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 2·x3   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1252_0_minus_EQ(x1, x2, x3)) = 2·x2   
POL(1275_0_copy_NONNULL(x1, x2)) = 0   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 0   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = 2·x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = x1 + x2   
POL(1470_0_minus_Return(x1)) = 0   
POL(1494_0_minus_InvokeMethod(x1)) = 1 + x1   
POL(1585_0_minus_InvokeMethod(x1)) = 2   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1681_0_minus_InvokeMethod(x1)) = 0   
POL(1689_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1697_0_minus_InvokeMethod(x1, x2)) = 0   
POL(1734_0_minus_InvokeMethod(x1)) = x1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = 2·x1   
POL(2376_0_minus_Return(x1, x2, x3)) = 0   
POL(2638_0_copy_Return(x1)) = 0   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 0   
POL(s(x1)) = 0   

(69) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(70) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 0   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1206_0_minus_EQ(x1, x2, x3)) = 2·x2   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 2·x2   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 0   
POL(1252_0_minus_EQ(x1, x2, x3)) = 0   
POL(1275_0_copy_NONNULL(x1, x2)) = 1   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 0   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = 2·x1   
POL(1415_0_copy_Return) = 1   
POL(1419_0_minus_Return(x1, x2)) = 2·x1 + 2·x2   
POL(1470_0_minus_Return(x1)) = 2·x1   
POL(1494_0_minus_InvokeMethod(x1)) = 1 + 2·x1   
POL(1585_0_minus_InvokeMethod(x1)) = x1   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = x1   
POL(1681_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1689_0_minus_InvokeMethod(x1)) = x1   
POL(1697_0_minus_InvokeMethod(x1, x2)) = x1 + x2   
POL(1734_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = 0   
POL(2376_0_minus_Return(x1, x2, x3)) = x1 + 2·x2   
POL(2638_0_copy_Return(x1)) = x1   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 0   
POL(s(x1)) = x1   

(71) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(72) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 0   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 2·x3   
POL(1206_0_minus_EQ(x1, x2, x3)) = 2·x2   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = x3   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = x2 + x3   
POL(1252_0_minus_EQ(x1, x2, x3)) = 2·x1 + 2·x2   
POL(1275_0_copy_NONNULL(x1, x2)) = 0   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 2·x2   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = 2·x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = 2·x1 + 2·x2   
POL(1470_0_minus_Return(x1)) = 0   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2·x1   
POL(1681_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1689_0_minus_InvokeMethod(x1)) = x1   
POL(1697_0_minus_InvokeMethod(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(1734_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = x1   
POL(2376_0_minus_Return(x1, x2, x3)) = 2·x1 + 2·x2   
POL(2638_0_copy_Return(x1)) = 2·x1   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 0   
POL(s(x1)) = 0   

(73) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(74) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 0   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 1   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1206_0_minus_EQ(x1, x2, x3)) = 1   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = x1   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 1 + 2·x2   
POL(1252_0_minus_EQ(x1, x2, x3)) = 1 + x2   
POL(1275_0_copy_NONNULL(x1, x2)) = 1   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 1   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = x1   
POL(1415_0_copy_Return) = 1   
POL(1419_0_minus_Return(x1, x2)) = 1 + x1   
POL(1470_0_minus_Return(x1)) = 1   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2   
POL(1681_0_minus_InvokeMethod(x1)) = 1   
POL(1689_0_minus_InvokeMethod(x1)) = 1 + 2·x1   
POL(1734_0_minus_InvokeMethod(x1)) = x1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2 + 2·x1   
POL(1817_0_copy_Return) = 1   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = 2·x1   
POL(1953_0_minus_Return(x1)) = 1   
POL(2376_0_minus_Return(x1, x2, x3)) = 1   
POL(2638_0_copy_Return(x1)) = 1   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 1 + 2·x1   
POL(s(x1)) = 0   

(75) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(76) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 2   
POL(1008_0_isZero_Return) = 0   
POL(1031_0_isZero_Return) = 0   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 1   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1206_0_minus_EQ(x1, x2, x3)) = x3   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1252_0_minus_EQ(x1, x2, x3)) = 1   
POL(1275_0_copy_NONNULL(x1, x2)) = 0   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 2·x2   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = 1 + 2·x1 + 2·x2   
POL(1470_0_minus_Return(x1)) = 1 + 2·x1   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2 + 2·x1   
POL(1681_0_minus_InvokeMethod(x1)) = 2·x1   
POL(1689_0_minus_InvokeMethod(x1)) = 1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 2 + x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = 2·x1   
POL(1953_0_minus_Return(x1)) = 1   
POL(2376_0_minus_Return(x1, x2, x3)) = 1   
POL(2638_0_copy_Return(x1)) = x1   
POL(927_0_isZero_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 1   
POL(s(x1)) = 0   

(77) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(78) QDPQMonotonicMRRProof (EQUIVALENT transformation)

By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented rules of the TRS R:

1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))

Used ordering: Polynomial interpretation [POLO]:

POL(01) = 2   
POL(1008_0_isZero_Return) = 1   
POL(1031_0_isZero_Return) = 2   
POL(1174_0_minus_InvokeMethod(x1, x2)) = 1   
POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1206_0_minus_EQ(x1, x2, x3)) = x3   
POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 1   
POL(1252_0_minus_EQ(x1, x2, x3)) = 1   
POL(1275_0_copy_NONNULL(x1, x2)) = 0   
POL(1351_1_copy_InvokeMethod(x1, x2)) = 0   
POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = x1   
POL(1415_0_copy_Return) = 0   
POL(1419_0_minus_Return(x1, x2)) = 1 + x2   
POL(1470_0_minus_Return(x1)) = 1   
POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = 1   
POL(1689_0_minus_InvokeMethod(x1)) = x1   
POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = x1   
POL(1817_0_copy_Return) = 0   
POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = x1   
POL(1953_0_minus_Return(x1)) = 1   
POL(2376_0_minus_Return(x1, x2, x3)) = 1   
POL(2638_0_copy_Return(x1)) = 0   
POL(927_0_isZero_NONNULL(x1)) = 2   
POL(NULL) = 0   
POL(Nats.Nats(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(pos(x1)) = 1   
POL(s(x1)) = 2   

(79) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(80) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]:

POL(1856_1_DIV_INVOKEMETHOD(x1, x2, x3, x4)) = -I + 0A·x1 + -I·x2 + 0A·x3 + -I·x4

POL(2376_0_minus_Return(x1, x2, x3)) = -I + -I·x1 + -I·x2 + 0A·x3

POL(java.lang.Object(x1)) = -I + 0A·x1

POL(Nats.Nats(x1)) = 0A + 1A·x1

POL(1617_1_DIV_INVOKEMETHOD(x1, x2, x3)) = -I + 1A·x1 + 0A·x2 + -I·x3

POL(1008_0_isZero_Return) = 0A

POL(1761_1_DIV_INVOKEMETHOD(x1, x2, x3)) = -I + 0A·x1 + -I·x2 + 0A·x3

POL(1174_0_minus_InvokeMethod(x1, x2)) = -I + 0A·x1 + -I·x2

POL(1953_0_minus_Return(x1)) = -I + 0A·x1

POL(1186_1_minus_InvokeMethod(x1, x2, x3)) = -I + -I·x1 + 0A·x2 + -I·x3

POL(927_0_isZero_NONNULL(x1)) = 0A + 0A·x1

POL(1206_0_minus_EQ(x1, x2, x3)) = -I + 0A·x1 + -I·x2 + -I·x3

POL(pos(x1)) = -I + 0A·x1

POL(01) = 0A

POL(1237_1_minus_InvokeMethod(x1, x2, x3)) = 0A + 0A·x1 + -I·x2 + 0A·x3

POL(NULL) = 0A

POL(1031_0_isZero_Return) = 0A

POL(1252_0_minus_EQ(x1, x2, x3)) = 0A + 0A·x1 + -I·x2 + 0A·x3

POL(s(x1)) = 1A + -I·x1

POL(1362_1_minus_InvokeMethod(x1, x2, x3)) = -I + 0A·x1 + -I·x2 + -I·x3

POL(1419_0_minus_Return(x1, x2)) = 1A + -I·x1 + -I·x2

POL(1470_0_minus_Return(x1)) = 1A + -I·x1

POL(1230_1_minus_InvokeMethod(x1, x2, x3)) = 0A + 0A·x1 + -I·x2 + -I·x3

POL(1275_0_copy_NONNULL(x1, x2)) = 0A + -I·x1 + 1A·x2

POL(1415_0_copy_Return) = 1A

POL(1351_1_copy_InvokeMethod(x1, x2)) = 0A + 1A·x1 + -I·x2

POL(1817_0_copy_Return) = 2A

POL(2638_0_copy_Return(x1)) = 0A + 0A·x1

The following usable rules [FROCOS05] were oriented:

1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))

(81) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x0))), java.lang.Object(Nats.Nats(java.lang.Object(y1)))) → 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(y1))), java.lang.Object(Nats.Nats(java.lang.Object(x0))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

We have to consider all minimal (P,Q,R)-chains.

(82) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.

(83) TRUE

(84) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0) → 370_0_<init>_Return
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0) → 370_0_<init>_Return

The integer pair graph contains the following rules and edges:
(0): 92_0_<INIT>_INVOKEMETHOD(x0[0]) → COND_92_0_<INIT>_INVOKEMETHOD(x0[0] > 0, x0[0])
(1): COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1]) → 92_0_<INIT>_INVOKEMETHOD(x0[1] - 1)

(0) -> (1), if ((x0[0] > 0* TRUE)∧(x0[0]* x0[1]))


(1) -> (0), if ((x0[1] - 1* x0[0]))



The set Q consists of the following terms:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0)
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0)

(85) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 92_0_<INIT>_INVOKEMETHOD(x0) → COND_92_0_<INIT>_INVOKEMETHOD(>(x0, 0), x0) the following chains were created:
  • We consider the chain 92_0_<INIT>_INVOKEMETHOD(x0[0]) → COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0]), COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1]) → 92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]92_0_<INIT>_INVOKEMETHOD(x0[0])≥NonInfC∧92_0_<INIT>_INVOKEMETHOD(x0[0])≥COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])∧(UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE92_0_<INIT>_INVOKEMETHOD(x0[0])≥NonInfC∧92_0_<INIT>_INVOKEMETHOD(x0[0])≥COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])∧(UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_11] + [(2)bni_11]x0[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_11] + [(2)bni_11]x0[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_11] + [(2)bni_11]x0[0] ≥ 0∧[(-1)bso_12] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_11 + (2)bni_11] + [(2)bni_11]x0[0] ≥ 0∧[(-1)bso_12] ≥ 0)







For Pair COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0) → 92_0_<INIT>_INVOKEMETHOD(-(x0, 1)) the following chains were created:
  • We consider the chain COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1]) → 92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1)) which results in the following constraint:

    (7)    (COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1])≥NonInfC∧COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1])≥92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))∧(UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥)∧[2 + (-1)bso_14] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥)∧[2 + (-1)bso_14] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥)∧[2 + (-1)bso_14] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥)∧0 = 0∧[2 + (-1)bso_14] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 92_0_<INIT>_INVOKEMETHOD(x0) → COND_92_0_<INIT>_INVOKEMETHOD(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_11 + (2)bni_11] + [(2)bni_11]x0[0] ≥ 0∧[(-1)bso_12] ≥ 0)

  • COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0) → 92_0_<INIT>_INVOKEMETHOD(-(x0, 1))
    • ((UIncreasing(92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))), ≥)∧0 = 0∧[2 + (-1)bso_14] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(269_1_<init>_InvokeMethod(x1, x2)) = [-1]   
POL(215_0_<init>_Return) = [-1]   
POL(0) = 0   
POL(370_0_<init>_Return) = [-1]   
POL(92_0_<INIT>_INVOKEMETHOD(x1)) = [2]x1   
POL(COND_92_0_<INIT>_INVOKEMETHOD(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   

The following pairs are in P>:

COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1]) → 92_0_<INIT>_INVOKEMETHOD(-(x0[1], 1))

The following pairs are in Pbound:

92_0_<INIT>_INVOKEMETHOD(x0[0]) → COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])

The following pairs are in P:

92_0_<INIT>_INVOKEMETHOD(x0[0]) → COND_92_0_<INIT>_INVOKEMETHOD(>(x0[0], 0), x0[0])

There are no usable rules.

(86) Complex Obligation (AND)

(87) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0) → 370_0_<init>_Return
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0) → 370_0_<init>_Return

The integer pair graph contains the following rules and edges:
(0): 92_0_<INIT>_INVOKEMETHOD(x0[0]) → COND_92_0_<INIT>_INVOKEMETHOD(x0[0] > 0, x0[0])


The set Q consists of the following terms:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0)
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0)

(88) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(89) TRUE

(90) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0) → 370_0_<init>_Return
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0) → 370_0_<init>_Return

The integer pair graph contains the following rules and edges:
(1): COND_92_0_<INIT>_INVOKEMETHOD(TRUE, x0[1]) → 92_0_<INIT>_INVOKEMETHOD(x0[1] - 1)


The set Q consists of the following terms:
269_1_<init>_InvokeMethod(215_0_<init>_Return, 0)
269_1_<init>_InvokeMethod(370_0_<init>_Return, x0)

(91) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(92) TRUE